package com.example.firstdemo.ui.theme

import androidx.compose.runtime.Immutable
import androidx.compose.ui.graphics.Color

@Immutable
data class Primary(
    val dark2: Color = Color.Unspecified,
    val base: Color = Color.Unspecified,
    val light3: Color = Color.Unspecified,
    val light5: Color = Color.Unspecified,
    val light7: Color = Color.Unspecified,
    val light8: Color = Color.Unspecified,
    val light9: Color = Color.Unspecified,
)

val primaryLight = Primary(
    dark2 = Color(0xFF337ecc),
    base = Color(0xFF409EFF),
    light3 = Color(0xFF79bbff),
    light5 = Color(0xFFa0cfff),
    light7 = Color(0xFFc6e2ff),
    light8 = Color(0xFFd9ecff),
    light9 = Color(0xFFecf5ff)
)

val primaryDark = Primary(
    dark2 = Color(0xFF66b1ff),
    base = Color(0xFF409EFF),
    light3 = Color(0xFF3375b9),
    light5 = Color(0xFF2a598a),
    light7 = Color(0xFF213d5b),
    light8 = Color(0xFF1d3043),
    light9 = Color(0xFF18222b)
)

@Immutable
data class Success(
    val dark2: Color = Color.Unspecified,
    val base: Color = Color.Unspecified,
    val light3: Color = Color.Unspecified,
    val light5: Color = Color.Unspecified,
    val light7: Color = Color.Unspecified,
    val light8: Color = Color.Unspecified,
    val light9: Color = Color.Unspecified,
)

val successLight = Success(
    dark2 = Color(0xFF529b2e),
    base = Color(0xFF67C23A),
    light3 = Color(0xFF95d475),
    light5 = Color(0xFFb3e19d),
    light7 = Color(0xFFd1edc4),
    light8 = Color(0xFFe1f3d8),
    light9 = Color(0xFFf0f9eb)
)

val successDark = Success(
    dark2 = Color(0xFF85ce61),
    base = Color(0xFF67C23A),
    light3 = Color(0xFF4e8e2f),
    light5 = Color(0xFF3e6b27),
    light7 = Color(0xFF2d481f),
    light8 = Color(0xFF25371c),
    light9 = Color(0xFF1c2518)
)

@Immutable
data class Warning(
    val dark2: Color = Color.Unspecified,
    val base: Color = Color.Unspecified,
    val light3: Color = Color.Unspecified,
    val light5: Color = Color.Unspecified,
    val light7: Color = Color.Unspecified,
    val light8: Color = Color.Unspecified,
    val light9: Color = Color.Unspecified,
)

val warningLight = Warning(
    dark2 = Color(0xFFb88230),
    base = Color(0xFFE6A23C),
    light3 = Color(0xFFeebe77),
    light5 = Color(0xFFf3d19e),
    light7 = Color(0xFFf8e3c5),
    light8 = Color(0xFFfaecd8),
    light9 = Color(0xFFfdf6ec)
)

val warningDark = Warning(
    dark2 = Color(0xFFebb563),
    base = Color(0xFFE6A23C),
    light3 = Color(0xFFa77730),
    light5 = Color(0xFF7d5b28),
    light7 = Color(0xFF533f20),
    light8 = Color(0xFF3e301c),
    light9 = Color(0xFF292218)
)

@Immutable
data class Danger(
    val dark2: Color = Color.Unspecified,
    val base: Color = Color.Unspecified,
    val light3: Color = Color.Unspecified,
    val light5: Color = Color.Unspecified,
    val light7: Color = Color.Unspecified,
    val light8: Color = Color.Unspecified,
    val light9: Color = Color.Unspecified,
)

val dangerLight = Danger(
    dark2 = Color(0xFFc45656),
    base = Color(0xFFF56C6C),
    light3 = Color(0xFFf89898),
    light5 = Color(0xFFfab6b6),
    light7 = Color(0xFFfcd3d3),
    light8 = Color(0xFFfde2e2),
    light9 = Color(0xFFfef0f0)
)

val dangerDark = Danger(
    dark2 = Color(0xFFf78989),
    base = Color(0xFFF56C6C),
    light3 = Color(0xFFb25252),
    light5 = Color(0xFF854040),
    light7 = Color(0xFF582e2e),
    light8 = Color(0xFF412626),
    light9 = Color(0xFF2a1d1d)
)

@Immutable
data class Info(
    val dark2: Color = Color.Unspecified,
    val base: Color = Color.Unspecified,
    val light3: Color = Color.Unspecified,
    val light5: Color = Color.Unspecified,
    val light7: Color = Color.Unspecified,
    val light8: Color = Color.Unspecified,
    val light9: Color = Color.Unspecified,
)

val infoLight = Info(
    dark2 = Color(0xFF73767a),
    base = Color(0xFF909399),
    light3 = Color(0xFFb1b3b8),
    light5 = Color(0xFFc8c9cc),
    light7 = Color(0xFFdedfe0),
    light8 = Color(0xFFe9e9eb),
    light9 = Color(0xFFf4f4f5)
)

val infoDark = Info(
    dark2 = Color(0xFFa6a9ad),
    base = Color(0xFF909399),
    light3 = Color(0xFF6b6d71),
    light5 = Color(0xFF525457),
    light7 = Color(0xFF393a3c),
    light8 = Color(0xFF2d2d2f),
    light9 = Color(0xFF202121)
)

@Immutable
data class Text(
    val primary: Color = Color.Unspecified,
    val regular: Color = Color.Unspecified,
    val secondary: Color = Color.Unspecified,
    val placeholder: Color = Color.Unspecified,
    val disabled: Color = Color.Unspecified
)

val textLight = Text(
    primary = Color(0xFF303133),
    regular = Color(0xFF606266),
    secondary = Color(0xFF909399),
    placeholder = Color(0xFFA8ABB2),
    disabled = Color(0xFFC0C4CC)
)

val textDark = Text(
    primary = Color(0xFFE5EAF3),
    regular = Color(0xFFCFD3DC),
    secondary = Color(0xFFA3A6AD),
    placeholder = Color(0xFF8D9095),
    disabled = Color(0xFF6C6E72)
)

@Immutable
data class Border(
    val darker: Color = Color.Unspecified,
    val dark: Color = Color.Unspecified,
    val base: Color = Color.Unspecified,
    val light: Color = Color.Unspecified,
    val lighter: Color = Color.Unspecified,
    val extraLight: Color = Color.Unspecified
)

val borderLight = Border(
    darker = Color(0xFFCDD0D6),
    dark = Color(0xFFD4D7DE),
    base = Color(0xFFDCDFE6),
    light = Color(0xFFE4E7ED),
    lighter = Color(0xFFEBEEF5),
    extraLight = Color(0xFFF2F6FC)
)

val borderDark = Border(
    darker = Color(0xFF636466),
    dark = Color(0xFF58585B),
    base = Color(0xFF4C4D4F),
    light = Color(0xFF414243),
    lighter = Color(0xFF363637),
    extraLight = Color(0xFF2B2B2C)
)

@Immutable
data class Fill(
    val darker: Color = Color.Unspecified,
    val dark: Color = Color.Unspecified,
    val base: Color = Color.Unspecified,
    val light: Color = Color.Unspecified,
    val lighter: Color = Color.Unspecified,
    val extraLight: Color = Color.Unspecified
)

val fillLight = Fill(
    darker = Color(0xFFE6E8EB),
    dark = Color(0xFFEBEDF0),
    base = Color(0xFFF0F2F5),
    light = Color(0xFFF5F7FA),
    lighter = Color(0xFFFAFAFA),
    extraLight = Color(0xFFFAFCFF)
)

val fillDark = Fill(
    darker = Color(0xFF424243),
    dark = Color(0xFF39393A),
    base = Color(0xFF303030),
    light = Color(0xFF262727),
    lighter = Color(0xFF1D1D1D),
    extraLight = Color(0xFF191919)
)

data class Background(
    val page: Color = Color.Unspecified,
    val base: Color = Color.Unspecified,
    val overlay: Color = Color.Unspecified
)

val backgroundLight = Background(
    page = Color(0xFFF2F3F5),
    base = Color(0xFFFFFFFF),
    overlay = Color(0xFFFFFFFF)
)

val backgroundDark = Background(
    page = Color(0xFF0A0A0A),
    base = Color(0xFF141414),
    overlay = Color(0xFF1D1E1F)
)

object Basic {
    val white: Color = Color.White
    val black: Color = Color.Black
    val transparent: Color = Color.Transparent
}